package es.ats.codington.festival.interfaces.daos;

import java.sql.SQLException;
import java.util.ArrayList;

import es.ats.codington.festival.domain.Event;
import es.ats.codington.festival.domain.LargeBusiness;
import es.ats.codington.festival.domain.Museum;
import es.ats.codington.festival.domain.Park;
import es.ats.codington.festival.domain.Stadium;
import es.ats.codington.festival.domain.Theater;
import es.ats.codington.festival.domain.TouristAttraction;
import es.ats.codington.festival.domain.TraditionalMarket;
import es.ats.codington.festival.domain.Zoo;

/**
 * 
 * 
 *
 */
public interface IEventDAO {

	/**
	 * 
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public ArrayList<Event> showEvents() throws ClassNotFoundException, SQLException;
	
	/**
	 * 
	 * @param event
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public int registerNewEvent(Event event)throws ClassNotFoundException, SQLException;
	
	/**
	 * 
	 * @param idEvent
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public int deleteEvent(int idEvent) throws ClassNotFoundException, SQLException;
	
	/**
	 * 
	 * @param event
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public int updateEvent(Event event) throws ClassNotFoundException, SQLException;
	
	/**
	 * 
	 * @param event
	 * @return
	 * @throws SQLException
	 */
	public boolean checkEventDAO(Event event) throws SQLException;
	
	/**
	 * 
	 * @param event
	 * @return
	 * @throws SQLException
	 */
	public int getIdEventDAO(Event event) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	public Event getEventDAO(Event e) throws SQLException;
	
	/**
	 * 
	 * @param event
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public ArrayList<Event> showEventsByPlaceDAO(Event event) throws ClassNotFoundException, SQLException;

	public Stadium showStadiumDAO(Stadium stadium) throws ClassNotFoundException, SQLException ;

	public Theater showTheaterDAO(Theater theater) throws ClassNotFoundException, SQLException;

	public Museum showMuseumDAO(Museum museum) throws ClassNotFoundException, SQLException;
	
	public LargeBusiness showLargeBusinessDAO(LargeBusiness largeBusiness) throws ClassNotFoundException, SQLException;

	public Zoo showZooDAO(Zoo zoo) throws ClassNotFoundException, SQLException;
	
	public Park showParkDAO(Park park) throws ClassNotFoundException, SQLException;
	
	public TraditionalMarket showTraditionalMarketDAO(TraditionalMarket traditionalMarket) throws ClassNotFoundException, SQLException;

	public TouristAttraction showTouristAttractionDAO(TouristAttraction touristAttraction) throws ClassNotFoundException, SQLException;

	public int getIdPlaceDAO(String name) throws SQLException;
}
